package com.uva.pgpi.sgcc.beans;

import java.io.Serializable;

import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
import com.uva.pgpi.sgcc.util.DateUtils;

@DatabaseTable(tableName = "proyectos")
public class Proyecto implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1195407918946634512L;
	public static final String ID_PROYECTO = "idProyecto";
	public static final String NOMBRE = "nombre";
	public static final String FECHA_CREACION = "fechaCreacion";
	public static final String ID_AUTOR = "idAutor";

	@DatabaseField(generatedId = true, columnName = ID_PROYECTO)
	private int idProyecto;

	@DatabaseField(columnName = NOMBRE, canBeNull = false)
	private String nombre;

	@DatabaseField(columnName = FECHA_CREACION, canBeNull = false)
	private long fechaCreacion;

	@DatabaseField(canBeNull = false, foreign = true, foreignAutoRefresh = true)
	private Usuario autor;

	public Proyecto() {

	}

	public Proyecto(int id, String nombre, long fecha, Usuario user) {
		this.idProyecto = id;
		this.nombre = nombre;
		this.fechaCreacion = fecha;
		this.autor = user;
	}

	public Proyecto(String nombre, long fecha, Usuario user) {
		this.nombre = nombre;
		this.fechaCreacion = fecha;
		this.autor = user;
	}

	public int getIdProyecto() {
		return idProyecto;
	}

	public void setIdProyecto(int idProyecto) {
		this.idProyecto = idProyecto;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public long getFechaCreacion() {
		return fechaCreacion;
	}

	public void setFechaCreacion(long fechaCreacion) {
		this.fechaCreacion = fechaCreacion;
	}

	public Usuario getAutor() {
		return autor;
	}

	public void setAutor(Usuario autor) {
		this.autor = autor;
	}

	@Override
	public String toString() {
		return "ID:\t"
				+ this.idProyecto
				+ "\nNombre:\t"
				+ this.nombre
				+ "\nFecha:\t"
				+ DateUtils.millisToDate(this.fechaCreacion,
						DateUtils.DATE_EXTENDED) + "\nAutor:\t"
				+ this.autor.toString();
	}

	public static void main(String[] args) {
		
		Rol r = new Rol("Jefe");
		Usuario u = new Usuario("jossoar", "Jose", "Soares",
				"Any", "mail@mail.com", r);
		Proyecto p = new Proyecto(23, "Proyecto PGPI", System
				.currentTimeMillis(), u);
		
		System.out.println(p);
	}

}
